The invention relates generally to the field of databases and according to one embodiment, a database navigated by a hierarchical data map.
A database generally stores data records. Each data record has an associated series of fields that are used to characterize that data record. To search the database for data records that meet particular criteria, the series of characterizing fields for each data record are searched to determine if the database includes any data records meeting the particular criteria. A disadvantage of traditional databases is that even if such a data record exists, it may not be found because the chosen search criteria do not match any of the characterizing fields.
Another approach for indexing information is to code each record in the database with an identifier and maintain a list of valid identifiers in a validation table that is a component of the database. One disadvantage of this method is that the validation tables are usually simple structures, and fail to capture relationships among the items in the validation table. Therefore, a disadvantage of this approach is that a user or application typically must use the exact identifier to retrieve an item in the database, and once retrieved there are no pointers to other information that may also be useful.
Another disadvantage with currently available database systems is that if a record is incorrectly indexed, it may not be found in any non-full text search method. For example, a search of automobiles may not locate a sport utility vehicle if the database characterizes the sport utility vehicle as a truck rather than an automobile.
Accordingly, one object of the invention is to provide a database system having improved flexibility with regard to tolerating inexact search terms.
Another object of the invention is to provide a database system, which exploits relationships among data stored in a database.
A further object of the invention is to provide a database system having improved flexibility with regard to tolerating inexact indexing of records stored in a database.
Other general and specific objects of the invention will in part be obvious and will in part appear hereinafter.
The invention relates to a database system which, in one embodiment, includes a user interface, a search engine, a data storage system, and a hierarchical data map. The hierarchical data map includes a plurality of hierarchies of data nodes. Each node includes a unique alpha-numeric identifier and a searchable term. Additionally, the nodes are related by both hierarchical and non-hierarchical relationships. For example, in addition to a particular node being related to other nodes that are hierarchically above and below the particular node, the particular node may also be cross-linked to one or more other nodes in branches of different hierarchical trees. According to a further feature, the hierarchical data map forms a thesaurus, substantially as defined by the International Standards Organization (ISO) Standard Z39.19-1993, the contents of which are herein incorporated by reference.
According to a further feature, the data storage system stores records such as documents. Each of the documents is encoded with one or more of the data node unique identifiers. Which identifiers are employed with any particular document is determined by the relationship between the searchable terms of the data nodes and the contents of the document. According to one embodiment, if a document includes a searchable term of a particular node, then that document is encoded with the unique identifier of the particular node. Documents may be encoded with the unique identifiers of more than one data node. According to one embodiment, documents are encoded manually. According to an alternative embodiment, documents are encoded in an automated fashion.
According to one operative embodiment, a user provides search terms to the search engine by way of the user interface. The search engine then attempts to locate the search terms in the hierarchical data map. Once located, the search engine retrieves the unique identifiers of the data nodes having searchable terms including the user-input search term. The search engine then retrieves from the data storage system records encoded with those unique identifiers. According to one embodiment, the unique identifiers are alpha-numeric characters. According to another embodiment, the unique identifiers are the searchable terms.
According to a further feature, before displaying the retrieved data records, the search engine again searches the data map and retrieves a subset of data nodes related to the selected data nodes, such as those data nodes that are hierarchically one step above and/or below the selected data node.
The user interface is adapted for receiving and displaying the retrieved records to the user. According to a further xe2x80x9con-line syndicationxe2x80x9d feature of the invention, the user interface can be customized to provide a display which emulates the look and feel of an enterprise storing records in the database system of the invention.
In further embodiments, the search engine is adapted for providing the user interface with the searchable terms associated with each of the located data nodes, prior to searching the data storage system. According to another feature, the user interface is further adapted for presenting the user with the searchable terms corresponding to the located data nodes, and for enabling the user to select a first of the presented searchable terms. In response to such a selection, the search engine retrieves records from the data storage system that are encoded with the unique identifier of a first data node associated with the selected searchable term. The user interface then presents the retrieved records to the user.
In an alternative embodiment, prior to providing the retrieved records to the user interface for presentation to a user, the search engine retrieves the unique identifiers from all of the data nodes that are hierarchically below the first data node. The user interface then presents to the user the retrieved records encoded with the unique identifier of the first data node, along with the records encoded with the unique identifiers of the data nodes that are hierarchically below the first data node. Optionally, the user interface also presents the searchable terms associated with those data nodes.
In a further embodiment, the system of the invention provides a browsing feature. According to one embodiment of the browsing feature, rather than entering search terms, the user interfaces with the hierarchical data map to signal the search engine to retrieve documents from the data storage system. By way of example, the user may select a data node via the user interface. In response, the search engine retrieves from the data storage system those records encoded with the unique identifier of the selected data node. The user interface presents the user with the retrieved records, along with a subset of the data nodes that may be, for example, hierarchically above or below the selected data node, or contextually related in some fashion to the selected data node.
In a further feature, in response to the user selecting one of the subset nodes, the search engine retrieves records encoded with the unique identifier of the selected subset node. The user interface then updates the presentation to the user to reflect the newly retrieved records. The user interface also updates the presentation to the user to display a subset of the data nodes that are hierarchically above and/or below the selected subset node.
According to another feature, the system of the invention is adapted to enable a user to employ a combination of search terms and browsing to locate records of interest. By way of example, according to one embodiment, in addition to displaying a retrieved record to the user, the system of the invention also displays all of the unique identifiers with which the record is encoded. In response to the user selecting one of the displayed unique identifiers the system presents all other records encoded with the selected unique identifier. In this way, the system of the invention enables the user to combine the use of search terms and browsing to locate records of interest.
In additional embodiments, the system of the invention is directed to associated methods for searching the data storage system. By way of example, one such embodiment includes the steps of accepting user-input search terms; locating in the hierarchical data map data nodes including searchable terms that match one or more of the user-input search terms; capturing unique identifiers associated with each of the located data nodes; locating records in the data storage system that are encoded with the unique identifiers of the located data nodes; and displaying the search results to the user.
According to further embodiments, the invention is directed to methods of storing data to a database. In one exemplary embodiment of the invention, data records are stored in the data storage system by assigning each data record to a data category and encoding each data record with one or more of the data node unique identifiers. Encoding of a data record is based, at least in part, on the relationship between informational content of the data record and the searchable terms of the data nodes of the hierarchical data map.
As skilled artisans will appreciate, the various features of the invention may be implemented in hardware, software or a combination of the two. Additionally, the system may be operated as a stand-alone mechanism or in co-operation with a communication network such as the Internet or an enterprise""s intranet.